﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace r2mp
{
    /*Projektstrukturplan
	Klasse: Arbeitspaket
		- Name (String)
		- Nummer (z.B. 1.2.1)
		- Dauer (Int, -1 = Phase, 0 = Meilenstein)
		- Status (0 = nicht angefangen, 1 = angefangen, 2 = fertig)
		- Arbeitspakete (Liste von Arbeitspaketen)*/
    public class Task
    {
        private String name;
        private String nr;
        private int duration;
        private int status;
        private List<Task> tasks;
        private List<String> ressources;

        public List<String> Ressources
        {
            get { return ressources; }
            set { ressources = value; }
        }

        //Konstanten für die Dauer eines Pakets
        public const int Milestone = 0;
        public const int Phase = -1;

        //Konstanten für den Status eines Pakets
        public const int Pending = 0;
        public const int Started = 1;
        public const int Finished = 2;
        // Name des Arbeitspaletes
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        // Nummer des jeweiligen Pakets (z.b. 1.3.5)
        public string Nr
        {
            get { return nr; }
            set { nr = value; }
        }

        // Dauer dieses Arbeitspakets (-1 = Phase, 0 = Meilenstein)
        public int Duration
        {
            get { return duration; }
            set { duration = value; }
        }

        // Status des Pakets (0 = nicht angefangen; 1 = angefangen; 2 = beendet)
        public int Status
        {
            get { return status; }
            set { status = value; }
        }

        // Liste der untergeordneten Arbeitspakete und Phasen
        public List<Task> Tasks
        {
            get { return tasks; }
            set { tasks = value; }
        }

        public Task()
        {
            tasks = new List<Task>();
        }

        public Task(String name, String nr, int duration, int status)
        {
            this.name = name;
            this.nr = nr;
            this.duration = duration;
            tasks = new List<Task>();
            this.status = status;
        }
    }
}
